abstract vs default in interface